package com.example.demo.dao;

import com.example.demo.dataobject.OrderDO;
import com.example.demo.param.QueryOrderParam;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface OrderDAO {
    /**
     * 新增一条数据
     * @param order
     * @return
     */
    int insert(OrderDO order);

    /**
     * 查询一段时间内的商品订单总数
     * @param param 包含商品ID、截止时间、订单状态的查询参数
     * @return
     */
    int count(QueryOrderParam param);

    /**
     * 分页查询数据
     * @param param 分页参数（页码、每页数量、商品ID、截止时间、订单状态）
     * @return
     */
    List<OrderDO> pageQuery(QueryOrderParam param);

    /**
     * 根据订单号查询订单
     *
     * @param orderNumber 订单号
     * @return
     */
    OrderDO selectByOrderNumber(String orderNumber);

    /**
     * 根据订单号更新订单状态
     * @param orderNumber 订单号
     * @param orderStatus 订单状态
     * @return
     */
    int updateStatusByOrderNumber(String orderNumber, String orderStatus);
}
